공개 키 기반 구조
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
공개 키 기반 구조(PKI)는 다양한 용도로 사용되는 디지털 인증서의 생성, 저장 및 배포 시스템이다. 주로 문서 암호화 및 인증, 사용자 인증, 보안 통신 프로토콜 설정 등에 활용되며, 신뢰 서비스 목표인 기밀성, 무결성 및 인증(CIA)을 제공한다. PKI는 인증 기관(CA), 등록 기관(RA), 중앙 디렉토리, 인증서 관리 시스템, 인증서 정책 등의 구성 요소로 이루어져 있으며, 인증서 발급 및 폐기 절차를 통해 운영된다.
PKI는 인증 기관(CA)의 역할, 신뢰 웹, 단순 공개 키 기반 구조(SPKI), 분산 PKI(DPKI) 등의 다양한 인증 방법을 사용하며, 오픈 소스 구현체와 상업적 구현체 모두 존재한다. 한국은 정부 주도의 PKI 정책을 적극적으로 활용하며, 전자정부 및 디지털 경제 발전에 기여하고 있다. 관련 기술로는 시간 인증 기관, 타임스탬프, 고급 전자 서명, 장기 서명, 권한 관리 기반(PMI) 등이 있다.
더 읽어볼만한 페이지
- IT 인프라스트럭처 - 컨버지드 인프라스트럭처
컨버지드 인프라스트럭처는 가상화된 서버, 스토리지, 네트워킹을 통합하여 IT 리소스를 공유하는 아키텍처이며, 비용 절감과 IT 민첩성 증가를 가져오고 클라우드 컴퓨팅 환경을 지원한다. - IT 인프라스트럭처 - 디지털 기회 지수
디지털 기회 지수는 국제 전기 통신 연합(ITU)이 발표하는 정보 통신 기술 발전 지수(ICT Development Index, IDI)를 의미하며, 국가별 ICT 발전 수준을 평가하는 지표로 0에서 100 사이의 값을 가지며, 보편적인 연결성과 의미 있는 연결성을 기반으로 한다. - 공개 키 기반 구조 - 코드 서명
코드 서명은 코드의 출처와 무결성을 보장하기 위해 공개 키와 개인 키 쌍을 사용하여 코드를 서명하는 기술이며, 소프트웨어 보안 강화 및 출처 확인에 유용하다. - 공개 키 기반 구조 - 루트 인증서
루트 인증서는 공개 키 기반 구조에서 디지털 인증서의 유효성을 검증하는 최상위 인증서로서, 웹 브라우저와 운영체제가 신뢰하는 목록을 관리하지만, 보안 침해 사례로 인해 사용자들의 적극적인 보안 조치가 필요하다. - 키 관리 - DNSSEC
DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다. - 키 관리 - 키 크기
키 크기는 암호 시스템의 보안 강도를 결정하는 핵심 요소로서, 무차별 대입 공격을 방지하기 위해 충분히 긴 길이가 필요하며, 계산 능력 및 양자 컴퓨팅 기술 발전에 따라 키 길이나 알고리즘을 주기적으로 조정하고 양자 내성 암호 기술 개발 및 전환이 중요하다.
공개 키 기반 구조 | |
---|---|
기본 정보 | |
유형 | 디지털 인증서의 발행, 배포 및 확인을 관리하는 시스템 |
설명 | 공개 키를 특정 개인 또는 엔터티의 신원과 연결하는 디지털 인증서를 사용해 보안 통신을 가능하게 함 |
주요 구성 요소 | |
인증 기관 (CA) | 디지털 인증서를 발급하고 서명하여 인증서의 유효성을 보장하는 신뢰할 수 있는 엔터티 |
등록 기관 (RA) | CA를 대신하여 인증서 신청자의 신원을 확인하고 인증 요청을 승인하는 역할 |
인증서 저장소 | 발급된 인증서를 저장하고 관리하는 데이터베이스 또는 디렉터리 |
인증서 관리 시스템 | 인증서의 생성, 갱신, 해지 및 배포를 처리하는 시스템 |
주요 기능 | |
인증서 발급 | 신청자의 신원을 확인하고 공개 키를 포함하는 디지털 인증서를 생성 |
인증서 배포 | 사용자 또는 시스템이 인증서를 안전하게 획득할 수 있도록 함 |
인증서 확인 | 인증서의 유효성을 확인하고 인증서가 해지되지 않았는지 확인 |
인증서 해지 | 더 이상 유효하지 않은 인증서를 해지하고 해지된 인증서 목록 (CRL)을 게시 |
보안 이점 | |
인증 | 사용자 또는 장치의 신원을 확인하여 권한이 없는 접근을 방지 |
암호화 | 데이터를 암호화하여 기밀성을 유지하고 전송 중에 데이터를 보호 |
무결성 | 전송 중에 데이터가 변조되지 않았는지 확인 |
부인 방지 | 트랜잭션 또는 통신에 대한 부인을 방지 |
응용 분야 | |
웹 보안 (HTTPS) | 웹 사이트와 사용자 간의 안전한 통신을 제공하여 데이터 유출 및 변조를 방지 |
이메일 보안 (S/MIME) | 이메일의 기밀성, 무결성 및 인증을 제공 |
VPN (Virtual Private Network) | 인터넷을 통해 전송되는 데이터를 암호화하여 안전한 원격 액세스를 가능하게 함 |
코드 서명 | 소프트웨어 개발자가 자신의 코드를 디지털 방식으로 서명하여 소프트웨어의 출처와 무결성을 보장 |
전자 서명 | 디지털 문서를 서명하여 법적 효력을 제공하고 문서의 출처와 무결성을 보장 |
스마트 카드 | 사용자 인증 및 보안 액세스를 위해 디지털 인증서를 저장하는 데 사용 |
표준 | |
X.509 | 디지털 인증서의 형식과 내용을 정의하는 가장 널리 사용되는 표준 |
PKCS (Public-Key Cryptography Standards) | 공개 키 암호화와 관련된 다양한 측면을 다루는 표준 집합 |
RFC 3647 | 인터넷 X.509 공개 키 인프라 인증서 정책 및 인증 실무 프레임워크를 정의하는 IETF RFC 문서 |
관련 용어 | |
디지털 인증서 | 개인 또는 엔터티의 신원을 공개 키와 연결하는 전자 문서 |
공개 키 암호화 | 공개 키와 개인 키를 사용하여 데이터를 암호화하고 해독하는 암호화 시스템 |
인증 기관 (CA) | 디지털 인증서를 발급하는 신뢰할 수 있는 제3자 |
인증서 해지 목록 (CRL) | 더 이상 유효하지 않은 해지된 인증서 목록 |
참고 자료 | |
전자공학 저널 | 전자공학 저널, "전방향 보안을 갖춘 동적 공개 키 인증서" |
유럽 연합 사이버 보안 기관 | 유럽 연합 사이버 보안 기관 (ENISA)의 공개 키 기반 (PKI) 설명 |
CSOOnline | CSOOnline, "PKI란 무엇이며 어떻게 온라인의 거의 모든 것을 보호하는가?" |
IETF | IETF, "인터넷 X.509 공개 키 인프라 인증서 정책 및 인증 실무 프레임워크" |
MSDN | MSDN, "공개 키 인프라" |
SSLTrust | SSLTrust, "Ubuntu에서 NGINX를 사용한 클라이언트 인증서 기반 인증" |
2. 기능
PKI는 다양한 공급업체에서 다양한 종류의 것이 제공되며, 다양한 용도가 있다(공개 키 배포, 사용자 개인 정보의 은닉 등).
- 문서의 암호화 및 인증 --- 문서가 XML이라면 XML 서명 및 XML 암호화 등. 문서가 전자 우편이라면 OpenPGP 및 S/MIME 등.
- 사용자 인증 --- 스마트 카드 로그온, TLS에 의한 클라이언트 인증 등.
- 안전한 통신 프로토콜의 초기 설정 --- 인터넷 키 교환(IKE) 및 TLS 등. IKE, TLS 모두 초기 설정 시에는 공개 키 암호를 사용하지만, 실제 통신은 공개 키 암호보다 속도가 빠른 대칭 키 암호를 사용한다.
==== 인증서 관련 기능 ====
전자 인증서는 공개 키 인증서를 비롯한 인증 기관이 발급하는 증명서를 말하며, 표준으로 X.509가 널리 채택되고 있다.[50] X.509에 따라 작성된 전자 인증서는 X.509 인증서라고 불린다. 단순히 인증서라고 할 경우에는 공개 키 인증서를 가리키는 경우가 많다.[51]
공개 키 인증서에는 인증 기관(CA)이 발급하는 CA 인증서와 PKI 사용자에게 발급되는 최종 사용자 인증서(End-entity certificate)가 있다.[51] CA 인증서의 특수한 것으로, 인증 기관이 자신의 개인 키로 서명한 자체 서명 인증서가 있다.[51]
암호용 공개 키와 서명 검증용 공개 키는 다른 것을 사용하는 경우가 많으며, 이 때문에 이들 두 개의 공개 키에 별도의 공개 키 인증서를 발급하는 경우가 있는데 이를 듀얼 키 페어 방식이라고 한다.[45]
인증 기관이 다른 인증 기관에 인증서를 발급하는 경우 등에서는, 상대방을 완전히 신뢰하는 것이 아니라, 인증서의 확장 영역에 조건을 기재함으로써 조건부의 신뢰 관계를 구축하는 것도 가능하다.[44]
공개키 인증서를 발급할 때는 주로 가입자의 본인 확인 등 등록 절차와, 가입자에게 실제로 공개키 인증서를 발급하는 두가지 절차를 수행한다. 이 두 가지 절차를 모두 인증기관(CA, Certification Authority)이 수행하는 운영 형태도 있지만, 두 가지 절차를 다른 기관에서 운영하는 형태도 있는데, 이 경우 등록 절차를 수행하는 기관을 등록기관(RA, Registration Authority), 인증서 발급 절차를 수행하는 기관을 발급기관(IA, Issuing Authority)이라고 한다.[52][53] 하지만 "발급기관"이라는 용어는 실제로 거의 사용되지 않으며, 발급기관을 "인증기관"이라고 부르는 경우가 많다.
인증서 발급 절차는 먼저 가입자는 자신이 사용할 공개키-비밀키 쌍을 생성하고 등록기관에서 본인 확인을 받는다.[54] 다음으로 가입자는 등록기관에 인증서 발급을 신청하고, 등록기관은 인증기관에 인증서 발급을 요청한다.[45] 인증기관은 신청서를 확인한 후 인증서를 발급하고, 등록기관을 통해 가입자에게 인증서를 배포한다.[45] 인증기관은 PKI의 다른 사용자가 가입자의 인증서를 쉽게 찾을 수 있도록 가입자의 인증서를 저장소에 공개한다.[45]
기업이 신입사원을 가입자로 일괄 등록하는 경우와 같이 등록기관인 기업 측에서 모든 가입자의 키 쌍을 생성하여 각 가입자에게 키 쌍을 배포하는 경우도 있다.[45] 이 경우 등록기관은 가입자에게 인증서를 배포할 때 비밀키도 함께 배포한다.[45]
PKI 이용자가 다른 이용자의 공개키 인증서를 얻는 방법으로, 이용자 B로부터 이메일 등의 수단을 이용하여 공개키 인증서를 받는 아웃오브밴드 전송 방식과,[55] S/MIME, PGP, TLS 등과 같이 공개키 암호나 전자 서명을 이용하는 통신 프로토콜의 일부로 공개키 인증서의 전송 방법이 포함되어 있는 인밴드 전송방식이 있다.[56]
또한, 다수의 이용자 인증서를 저장하고 있는 저장소에서 B의 인증서를 받는 방법도 있다. 저장소의 구현 방법은 다양하며, LDAP([https://datatracker.ietf.org/doc/html/rfc2559 RFC2559])나 X.500과 같은 디렉터리 서비스를 이용한 것 외에, FRP나 HTTP([https://datatracker.ietf.org/doc/html/rfc2585 RFC2585])를 사용한 것, DNS([https://datatracker.ietf.org/doc/html/rfc2538 RFC2538])를 사용한 것이 있다.
공개키 인증서에는 유효기간이 정해져 있으며, 이 유효기간을 초과한 만료[45]된 인증서는 무효가 된다. 따라서 PKI 이용자는 인증서의 기간이 만료되기 전에 새로운 키 쌍을 생성하고, 새로운 키 쌍에 대한 인증서를 발급받아야 하는데, 이 작업을 인증서 갱신이라고 한다.[45] 갱신 시에는 기존 키 쌍을 사용하여 인증 기관으로부터 인증을 받을 수 있으므로, 새로운 인증서 발급 시 네트워크를 통해 갱신 절차를 수행할 수 있다.[45]
갱신 절차를 수행한 후 기존 인증서가 유효기간 만료될 때까지는 신구 양쪽 인증서가 존재하게 된다. 이 신구 인증서를 연결하기 위해 연결 인증서라는 인증서를 인증 기관으로부터 발급받는다. 연결 인증서에는 NewWithOld, OldWithNew 등의 인증서가 있다.[45] NewWithOld는 기존 키 쌍을 사용하여 생성한 새로운 공개키에 대한 인증서이고, OldWithNew는 반대로 새로운 키 쌍을 사용하여 생성한 기존 공개키에 대한 인증서이다.[45]
==== 신뢰 서비스 목표 (CIA) ====
PKI는 "신뢰 서비스"를 제공한다. 신뢰 서비스는 사람이나 컴퓨터 등 개체의 행동이나 출력을 신뢰하는 것을 의미한다. 신뢰 서비스 목표는 기밀성, 무결성 및 인증(CIA) 중 하나 이상의 기능을 준수한다.
기밀성: 어떤 개체도 악의적으로 또는 무심코 암호화되지 않은 상태의 데이터를 볼 수 없다는 보장이다. 데이터는 암호화되어 비밀로 유지되므로, 읽더라도 난독화된 것처럼 보인다. 기밀성을 위한 PKI의 가장 일반적인 사용 사례는 전송 계층 보안(TLS)의 맥락에서 볼 수 있다. TLS는 전송 중인 데이터의 보안을 뒷받침하는 기능이다. 기밀성을 위한 TLS의 전형적인 예는 인터넷 브라우저를 사용하여 인터넷 기반 웹 사이트에 호스팅되는 서비스에 비밀번호를 입력하여 로그온하는 경우이다.
무결성: 어떤 개체가 전송된 데이터를 아주 조금이라도 변경(변조)한 경우, 그 무결성이 손상되었기 때문에 변경 사실이 명백히 드러난다는 보장이다. 종종 무결성이 손상되는 것을 방지하는 것(변조 방지)이 최우선 과제는 아니지만, 무결성이 손상된 경우 그 사실이 명확하게 증명되는 것(변조 감지)이 매우 중요하다.
인증: 모든 개체가 연결 대상을 확실히 알거나 보호된 서비스에 연결할 때 합법성을 증명할 수 있다는 보장이다. 전자를 서버 측 인증이라고 하며, 일반적으로 비밀번호를 사용하여 웹 서버에 인증할 때 사용된다. 후자를 클라이언트 측 인증이라고 하며, 때때로 스마트 카드(디지털 인증서 및 개인 키를 보유)를 사용하여 인증할 때 사용된다.
2. 1. 인증서 관련 기능
전자 인증서는 공개 키 인증서를 비롯한 인증 기관이 발급하는 증명서를 말하며, 표준으로 X.509가 널리 채택되고 있다.[50] X.509에 따라 작성된 전자 인증서는 X.509 인증서라고 불린다. 단순히 인증서라고 할 경우에는 공개 키 인증서를 가리키는 경우가 많다.[51]공개 키 인증서에는 인증 기관(CA)이 발급하는 CA 인증서와 PKI 사용자에게 발급되는 최종 사용자 인증서(End-entity certificate)가 있다.[51] CA 인증서의 특수한 것으로, 인증 기관이 자신의 개인 키로 서명한 자체 서명 인증서가 있다.[51]
암호용 공개 키와 서명 검증용 공개 키는 다른 것을 사용하는 경우가 많으며, 이 때문에 이들 두 개의 공개 키에 별도의 공개 키 인증서를 발급하는 경우가 있는데 이를 듀얼 키 페어 방식이라고 한다.[45]
인증 기관이 다른 인증 기관에 인증서를 발급하는 경우 등에서는, 상대방을 완전히 신뢰하는 것이 아니라, 인증서의 확장 영역에 조건을 기재함으로써 조건부의 신뢰 관계를 구축하는 것도 가능하다.[44]
공개키 인증서를 발급할 때는 주로 가입자의 본인 확인 등 등록 절차와, 가입자에게 실제로 공개키 인증서를 발급하는 두가지 절차를 수행한다. 이 두 가지 절차를 모두 인증기관(CA, Certification Authority)이 수행하는 운영 형태도 있지만, 두 가지 절차를 다른 기관에서 운영하는 형태도 있는데, 이 경우 등록 절차를 수행하는 기관을 등록기관(RA, Registration Authority), 인증서 발급 절차를 수행하는 기관을 발급기관(IA, Issuing Authority)이라고 한다.[52][53] 하지만 "발급기관"이라는 용어는 실제로 거의 사용되지 않으며, 발급기관을 "인증기관"이라고 부르는 경우가 많다.
인증서 발급 절차는 먼저 가입자는 자신이 사용할 공개키-비밀키 쌍을 생성하고 등록기관에서 본인 확인을 받는다.[54] 다음으로 가입자는 등록기관에 인증서 발급을 신청하고, 등록기관은 인증기관에 인증서 발급을 요청한다.[45] 인증기관은 신청서를 확인한 후 인증서를 발급하고, 등록기관을 통해 가입자에게 인증서를 배포한다.[45] 인증기관은 PKI의 다른 사용자가 가입자의 인증서를 쉽게 찾을 수 있도록 가입자의 인증서를 저장소에 공개한다.[45]
기업이 신입사원을 가입자로 일괄 등록하는 경우와 같이 등록기관인 기업 측에서 모든 가입자의 키 쌍을 생성하여 각 가입자에게 키 쌍을 배포하는 경우도 있다.[45] 이 경우 등록기관은 가입자에게 인증서를 배포할 때 비밀키도 함께 배포한다.[45]
PKI 이용자가 다른 이용자의 공개키 인증서를 얻는 방법으로, 이용자 B로부터 이메일 등의 수단을 이용하여 공개키 인증서를 받는 아웃오브밴드 전송 방식과,[55] S/MIME, PGP, TLS 등과 같이 공개키 암호나 전자 서명을 이용하는 통신 프로토콜의 일부로 공개키 인증서의 전송 방법이 포함되어 있는 인밴드 전송방식이 있다.[56]
또한, 다수의 이용자 인증서를 저장하고 있는 저장소에서 B의 인증서를 받는 방법도 있다. 저장소의 구현 방법은 다양하며, LDAP([https://datatracker.ietf.org/doc/html/rfc2559 RFC2559])나 X.500과 같은 디렉터리 서비스를 이용한 것 외에, FRP나 HTTP([https://datatracker.ietf.org/doc/html/rfc2585 RFC2585])를 사용한 것, DNS([https://datatracker.ietf.org/doc/html/rfc2538 RFC2538])를 사용한 것이 있다.
공개키 인증서에는 유효기간이 정해져 있으며, 이 유효기간을 초과한 만료[45]된 인증서는 무효가 된다. 따라서 PKI 이용자는 인증서의 기간이 만료되기 전에 새로운 키 쌍을 생성하고, 새로운 키 쌍에 대한 인증서를 발급받아야 하는데, 이 작업을 인증서 갱신이라고 한다.[45] 갱신 시에는 기존 키 쌍을 사용하여 인증 기관으로부터 인증을 받을 수 있으므로, 새로운 인증서 발급 시 네트워크를 통해 갱신 절차를 수행할 수 있다.[45]
갱신 절차를 수행한 후 기존 인증서가 유효기간 만료될 때까지는 신구 양쪽 인증서가 존재하게 된다. 이 신구 인증서를 연결하기 위해 연결 인증서라는 인증서를 인증 기관으로부터 발급받는다. 연결 인증서에는 NewWithOld, OldWithNew 등의 인증서가 있다.[45] NewWithOld는 기존 키 쌍을 사용하여 생성한 새로운 공개키에 대한 인증서이고, OldWithNew는 반대로 새로운 키 쌍을 사용하여 생성한 기존 공개키에 대한 인증서이다.[45]
2. 2. 신뢰 서비스 목표 (CIA)
PKI는 "신뢰 서비스"를 제공한다. 신뢰 서비스는 사람이나 컴퓨터 등 개체의 행동이나 출력을 신뢰하는 것을 의미한다. 신뢰 서비스 목표는 기밀성, 무결성 및 인증(CIA) 중 하나 이상의 기능을 준수한다.기밀성: 어떤 개체도 악의적으로 또는 무심코 암호화되지 않은 상태의 데이터를 볼 수 없다는 보장이다. 데이터는 암호화되어 비밀로 유지되므로, 읽더라도 난독화된 것처럼 보인다. 기밀성을 위한 PKI의 가장 일반적인 사용 사례는 전송 계층 보안(TLS)의 맥락에서 볼 수 있다. TLS는 전송 중인 데이터의 보안을 뒷받침하는 기능이다. 기밀성을 위한 TLS의 전형적인 예는 인터넷 브라우저를 사용하여 인터넷 기반 웹 사이트에 호스팅되는 서비스에 비밀번호를 입력하여 로그온하는 경우이다.
무결성: 어떤 개체가 전송된 데이터를 아주 조금이라도 변경(변조)한 경우, 그 무결성이 손상되었기 때문에 변경 사실이 명백히 드러난다는 보장이다. 종종 무결성이 손상되는 것을 방지하는 것(변조 방지)이 최우선 과제는 아니지만, 무결성이 손상된 경우 그 사실이 명확하게 증명되는 것(변조 감지)이 매우 중요하다.
인증: 모든 개체가 연결 대상을 확실히 알거나 보호된 서비스에 연결할 때 합법성을 증명할 수 있다는 보장이다. 전자를 서버 측 인증이라고 하며, 일반적으로 비밀번호를 사용하여 웹 서버에 인증할 때 사용된다. 후자를 클라이언트 측 인증이라고 하며, 때때로 스마트 카드(디지털 인증서 및 개인 키를 보유)를 사용하여 인증할 때 사용된다.
3. 구성 요소
공개 키 암호화는 안전하지 않은 공용 네트워크에서 개체 간의 안전한 통신을 가능하게 하고 디지털 서명을 통해 개체의 신원을 안정적으로 확인할 수 있는 암호화 기술이다.[7] 공개 키 기반 구조(PKI)는 특정 공개 키가 특정 개체에 속함을 확인하는 데 사용되는 디지털 인증서의 생성, 저장 및 배포를 위한 시스템이다.[8][9][10] PKI는 공개 키를 개체에 매핑하는 디지털 인증서를 생성하고, 이러한 인증서를 중앙 저장소에 안전하게 저장하며, 필요한 경우 해당 인증서를 무효화한다.[9][10]
PKI는 다음과 같은 구성 요소로 이루어진다.[9][11][12]
- '''인증 기관(CA):''' 디지털 인증서를 저장, 발급 및 서명한다.
- '''등록 기관(RA):''' 디지털 인증서를 CA에 저장하도록 요청하는 개체의 신원을 확인한다.
- '''중앙 디렉토리:''' 키가 저장되고 색인되는 안전한 위치이다.
- '''인증서 관리 시스템:''' 저장된 인증서에 대한 접근 또는 발급될 인증서의 배달과 같은 것을 관리한다.
- '''인증서 정책:''' PKI의 절차에 관한 요구 사항을 명시한다. 그 목적은 외부인이 PKI의 신뢰성을 분석할 수 있도록 하는 것이다.
4. 인증 방법
4. 1. 인증 기관 (CA)
인증기관(CA)의 주요 역할은 주어진 사용자와 연결된 공개 키에 디지털 서명을 하고 공개하는 것이다. 이는 CA의 자체 비밀 키를 사용하여 수행되므로 사용자 키에 대한 신뢰는 CA 키의 유효성에 대한 신뢰에 의존한다. CA가 사용자와 시스템과 별개의 제3자일 경우, 등록 기관(RA)이라고 하며, CA와 별개일 수도 있고 아닐 수도 있다.[13] 키-사용자 바인딩은 바인딩의 보증 수준에 따라 소프트웨어 또는 인간 감독 하에 설정된다.인증기관은 공개키 인증서 등의 전자 인증서를 발급하는 기관이다. 각 인증기관은 인증서의 이용 목적을 정하는 '''인증서 정책'''(CP, Certificate Policy)과 CA의 운영 방법을 정하는 '''인증 관행 설명'''(CPS, Certification Practice Statement)을 규정한다(RFC 3647).[45]
인증기관 상호 간의 신뢰 관계 모델을 신뢰 모델이라고 한다.[44] 다양한 기관이 다양한 신뢰 모델을 기반으로 인증기관을 운영하지만, 대표적인 신뢰 모델로는 다음과 같은 것들이 있다.
단일 모델은 하나의 인증기관이 모든 사용자에게 인증서를 발급하는 모델이며,[44] 기업 내 인증기관 등 사용자 수가 소규모인 경우에 사용된다.
계층형 모델은 여러 인증기관이 트리형 계층 구조를 이루는 모델이며,[44] 웹 모델은 웹 브라우저 등의 클라이언트 애플리케이션에 미리 인증기관 목록을 탑재하는 모델이다.[44]
메시 모델은 계층 구조를 갖지 않는 인증기관들이 상호 인증하는 모델이며,[44] 서로 다른 운영 정책(=CP와 CPS의 기재 내용)을 가진 "CA 도메인" 간을 연결할 때 사용된다.[46] 메시 모델에서는 서로 다른 CA 도메인에 있는 인증기관들이 상호 인증하는 상호 인증으로 연결된다.[46] 상호 인증에 사용되는 인증서를 상호 인증서라고 한다.
브리지 CA 모델은 인증기관들이 브리지 CA라는 인증기관을 통해 연결되는 모델이다.[44] 메시 모델과 마찬가지로 서로 다른 CA 도메인을 연결할 때 사용하지만, 각 인증기관이 상호 인증하는 메시 모델과 달리, 각 인증기관은 하나의 브리지 CA와만 상호 인증한다. 이에 따라 인증기관 1브리지 CA인증기관 2라는 브리지 CA를 매개로 한 신뢰 관계가 형성된다. 인증기관의 수가 많은 경우, 인증기관들이 직접 상호 인증하는 메시 모델에서는 상호 인증의 수가 엄청나게 많아지지만, 브리지 CA 모델에서는 브리지 CA를 매개로 한 스타형 토폴로지의 상호 인증만 형성되므로, 인증 경로의 수를 줄일 수 있다는 장점이 있다.[47]
'''최상위 인증기관'''(Root Certificate Authority)은 상위 인증기관의 인증을 받지 않고, 자신의 정당성을 스스로 증명하는 인증기관이다.[48] 계층형 모델에서 트리의 최상단에 위치하는 인증기관이나 웹 모델에서 애플리케이션에 미리 등록되어 있는 인증기관이 여기에 해당한다. 이 두 종류의 최상위 인증기관을 구분하기 위해 웹 모델의 최상위 인증기관을 '''공개 최상위 인증기관'''(Public Root Certificate Authority)이라고 부르기도 한다.[49] 최상위 인증기관 이외의 인증기관은 '''중간 인증기관'''(Intermediate Certificate Authority)이라고 부른다.[48]
최상위 인증기관은 PKI의 신뢰의 출발점인 '''신뢰 앵커'''(Trust Anchor) 역할을 한다. 어떤 CA 도메인에 속하는 최상위 인증기관을 신뢰 앵커로 채택하면, 그 CA 도메인과 상호 인증되는 다른 CA 도메인의 인증기관의 인증서도 상호 인증을 통해 신뢰 앵커까지 거슬러 올라갈 수 있다.
로봇 CA(Robot CA)는 공개 키의 정당성을 특정 조건에서 자동으로 검증하고, 그 조건에 대한 유효성을 증명하기 위한 서명을 자동으로 하는 무인 프로그램이다. 로봇 CA는 공개 키 시스템의 공격자, 특히 합법적인 사이트의 모든 네트워크 트래픽을 일시적으로 전환하는 종류의 공격자를 제거하거나 크게 억제할 수 있다.
4. 1. 1. 인증서 폐기
인증서는 만료되기 전에 폐기될 수 있으며, 이는 더 이상 유효하지 않음을 나타낸다. 폐기가 없다면 공격자는 만료될 때까지 손상되거나 잘못 발급된 인증서를 악용할 수 있다.[57] 따라서 폐기는 공개 키 기반 구조의 중요한 부분이다. 폐기는 발급하는 인증 기관이 수행하며, 폐기에 대한 암호화된 인증된 진술을 생성한다.클라이언트에 폐기 정보를 배포하는 경우, 폐기 발견의 시기 적절성(따라서 공격자가 손상된 인증서를 악용할 수 있는 기간)은 폐기 상태를 쿼리하고 개인 정보 보호 문제에 대한 리소스 사용과 상충된다. 폐기 정보를 사용할 수 없는 경우(사고 또는 공격으로 인해), 클라이언트는 인증서가 폐기된 것처럼 처리하고(따라서 가용성을 저하시키고) ''강제 실패''할지, 아니면 폐기되지 않은 것으로 처리하고(공격자가 폐기를 우회하도록 허용하고) ''부드러운 실패''할지 결정해야 한다.
폐기 확인 비용과 잠재적으로 신뢰할 수 없는 원격 서비스로 인한 가용성 영향으로 인해 웹 브라우저는 수행할 폐기 확인을 제한하고, 그렇게 하는 경우 부드러운 실패를 한다. 인증서 폐기 목록은 일상적인 사용에 너무 많은 대역폭 비용이 들며, 온라인 인증서 상태 프로토콜은 연결 지연 시간 및 개인 정보 보호 문제를 제기한다.
자신이 보유한 개인키가 유출되었거나, 퇴직 등으로 인해 서명 권한을 상실한 경우에는, 아직 만료되지 않은 공개키 인증서를 무효화해야 한다. 이러한 절차를 공개키 인증서의 '''폐기'''라고 한다.[57]
폐기된 인증서 목록의 관리는 인증기관 자신이 수행하는 경우와 인증서의 유효성 검증을 전문으로 하는 조직이 수행하는 경우가 있으며, 후자의 경우 그 조직을 '''검증기관'''이라고 한다.[58][59]
인증서가 폐기되었는지 여부를 확인하는 방법으로 CRL과 OCSP가 있다.
- '''CRL'''(Certificate Revocation List, 인증서 폐기 목록)은 이미 폐기된 공개 키 인증서(의 시리얼 번호) 목록이다. 각 사용자는 이 목록을 확인하여 공개 키의 폐기 상태를 확인할 수 있다.[60]
- * CRL 발급자는 대부분 인증서를 발급한 인증 기관 자신이며, CRL에는 그 진정성을 나타내기 위해 발급자의 서명이 부여되어 있다.[60]
- * CRL은 '''저장소'''라는 공개 서버에 저장되며, PKI 사용자는 이 서버에 접속하여 CRL을 얻을 수 있다.[60]
CRL 중에는 인증 기관의 폐기 정보에 특화된 것이 있으며, 이를 '''인증 기관 폐기 목록'''(ARL**, Authority Revocation List)이라고 한다.[60]
- * CRL은 정기적으로 업데이트되며, 새로운 폐기 정보가 CRL에 수시로 추가된다. 그러나 사용자가 인증서 폐기를 신청한 후 CRL이 업데이트될 때까지 시간 차이가 발생하는 문제가 있다. 따라서 CRL의 정기 업데이트보다 더 빠른 빈도로 마지막 업데이트 이후의 차이 정보가 공개되는 경우가 있다. 이 차이 정보를 '''델타 CRL'''이라고 한다.[60]
- * CRL의 운영 형태에는 여러 가지가 있다. '''완전 CRL'''은 모든 폐기 정보를 하나의 CRL에 기록하는 방법이지만, 폐기 정보의 수가 많아지면 CRL 획득의 부하가 커진다.[60]
'''구분 CRL'''에서는 폐기 정보를 여러 개의 CRL로 분할한다. 구분 CRL을 사용하려면 인증서 발급 단계에서 해당 인증서가 폐기된 경우 폐기 정보가 어떤 CRL에 기록될지에 대한 정보(CRL 배포 지점, CRLDP**, CRL Distribution Point)를 인증서에 기록해 두어야 한다. PKI 사용자는 CRLDP를 이용하여 저장소에서 필요한 구분 CRL을 얻는다.[60]
- * 또한 PKI 사용자의 편의성을 높이기 위해 여러 인증 기관이 발급한 CRL을 다른 CRL 발급자가 하나로 모아 배포하는 경우가 있으며, 이러한 CRL을 '''간접 CRL'''(indirect CRL)이라고 한다.[60]
- '''OCSP'''(Online Certificate Status Protocol)는 인증서의 폐기 상태 확인을 구현하는 프로토콜이며[61], 에 규정되어 있다.
- * 이 방법에서는 '''OCSP 응답자'''라는 서버에 인증서의 폐기 여부 정보가 일괄 관리된다. 인증서의 폐기 상태를 알고 싶은 이용자('''OCSP 요청자''')가 OCSP 응답자에게 폐기 정보를 조회하면, OCSP 응답자는 “유효”, “폐기”, “알 수 없음” 중 하나를 반환한다.[61] 이때 응답 내용에 대한 OCSP 응답자의 서명문도 동시에 전송한다.[61]
- * 폐기 정보를 OCSP 응답자에서 관리하기 때문에, 인증 기관은 폐기 정보를 OCSP 응답자에게 전송해야 한다. 그때의 전송 프로토콜에는 규정이 없지만, CRL 형태로 폐기 정보를 인증 기관으로부터 얻거나, OCSP 프로토콜에 따라 인증 기관에 폐기 정보를 확인한다.[61]
- * 또한 OCSP 응답자와 OCSP 요청자 간의 통신 계층에 대해서도 규정이 없지만, HTTP, SMTP, LDAP 등이 사용된다.[61]
4. 1. 2. 인증 기관 시장 점유율
이 신뢰 관계 모델에서 CA는 신뢰할 수 있는 제3자이며, 인증서의 소유자(주체)와 인증서를 신뢰하는 당사자 모두에게 신뢰를 받는다.2015년 NetCraft 보고서[15](활성 전송 계층 보안(TLS) 인증서 모니터링을 위한 업계 표준)에 따르면, "전 세계 TLS 생태계는 경쟁적이지만 소수의 주요 CA가 시장을 장악하고 있습니다. 세 개의 인증 기관(시만텍, Sectigo, GoDaddy)이 공개 웹 서버에서 발급된 모든 TLS 인증서의 4분의 3을 차지합니다. 시만텍(또는 시만텍에 인수되기 전 베리사인)이 설문 조사 시작 이후로 최고 자리를 차지해 왔으며, 현재 모든 인증서의 3분의 1에 가까운 비율을 차지하고 있습니다. 상이한 방법론의 영향을 보여주기 위해, 가장 많은 방문자를 기록한 100만 개 사이트 중에서 시만텍은 사용 중인 유효하고 신뢰할 수 있는 인증서의 44%를 발급했습니다. 이는 시만텍의 전체 시장 점유율보다 훨씬 높은 수치입니다."라고 명시하고 있다.
인증서 발급 관리 방식과 관련된 주요 문제 이후, 2017년부터 2021년까지 모든 주요 업체들이 시만텍이 발급한 인증서에 대한 신뢰를 점진적으로 철회했다.[16][17][18][19]
4. 1. 3. 임시 인증서 및 단일 로그온
이 방법은 단일 로그온 시스템 내에서 오프라인 인증 기관 역할을 하는 서버를 포함한다. 단일 로그온 서버는 클라이언트 시스템에 디지털 인증서를 발급하지만 저장하지는 않는다. 사용자는 임시 인증서를 사용하여 프로그램 등을 실행할 수 있다. 이 솔루션은 X.509 기반 인증서에서 일반적으로 찾아볼 수 있다.[20]2020년 9월부터 TLS 인증서 유효 기간이 13개월로 단축되었다.
4. 2. 신뢰 웹 (Web of Trust)
공개 키 정보의 공개 인증 문제에 대한 대안적인 접근 방식으로 인증서 자체 서명과 제3자 증명을 사용하는 신뢰 웹 체계가 있다. "신뢰 웹"은 단일 신뢰 웹이나 공통 신뢰 지점을 의미하는 것이 아니라, 분리된 여러 "신뢰 웹" 중 하나를 의미한다.[21] 이러한 접근 방식의 구현 사례로는 PGP(Pretty Good Privacy)와 OpenPGP의 구현인 GnuPG(The GNU Privacy Guard)가 있다.[21] PGP 및 구현에서는 전자 우편 디지털 서명을 사용하여 공개 키 정보를 자체 게시할 수 있어, 자신의 신뢰 웹을 구현하는 것이 비교적 쉽다.PGP와 같은 신뢰 웹의 장점 중 하나는 도메인 내 모든 당사자가 완전히 신뢰하는 PKI CA(예: 회사의 내부 CA)와 상호 운용될 수 있다는 점이다. 이 CA는 신뢰할 수 있는 소개자로서 인증서를 보장하려고 한다.[21] "신뢰 웹"이 완전히 신뢰되는 경우, 해당 웹의 모든 인증서를 신뢰하는 것을 의미한다. PKI는 인증서 발급을 제어하는 표준 및 관행만큼만 가치가 있으며, PGP 또는 개인적으로 설립된 신뢰 웹을 포함하면 기업이나 도메인의 PKI 구현 신뢰성이 크게 저하될 수 있다.[21]
thumb
신뢰 웹 개념은 1992년 PGP 개발자인 필 짐머만이 PGP 2.0 매뉴얼에서 처음 제시했다. 공개키에 대한 서명을 인증 기관이 수행하는 경우, 해당 공개 키 소유자를 신뢰할지 여부는 인증 기관의 신뢰도에 달려 있다. 또한, 인증 기관의 서명은 비용과 시간이 많이 드는 경우가 많다. 더 나아가, 웹 브라우저가 인증 기관의 공개 키를 포함하는 경우 웹 브라우저 배포자의 신뢰성을 확보해야 한다. 이러한 문제를 해결하는 방법으로 신뢰의 웹(Web of Trust)을 구축하는 방법이 있다. 이는 서로 신뢰하는 사람들이 서로의 공개 키에 직접 서명함으로써 서로의 신뢰도를 유지하고, 여러 사람이 이를 수행함으로써 직접 서명을 교환하지 않은 사람들도 신뢰하는 제3자를 통해 상대방의 신뢰도를 유지할 수 있다는 것이다. 이때 상대방까지의 신뢰 관계 경로를 신뢰 경로(trust path)라고 한다.
신뢰의 고리에서 특정 키의 신뢰도를 나타내는 지표 중 하나로 MSD(평균 최단 거리)가 있다.[83] 이는 신뢰의 고리에 포함된 모든 사람으로부터의 신뢰 경로의 최단 길이의 평균값으로 계산된다. 이는 신뢰 경로가 길수록 신뢰도가 낮아지고, 많은 사람으로부터 서명될수록 신뢰도가 높아진다는 개념에 기반하고 있다. 오른쪽 그림의 rio에 대해 MSD를 계산하면, 신뢰 경로의 최단 길이는 james:1, mike:1, ken:2, john:2, lucy:3이므로, MSD는 그 평균인 1.8이 된다.
공개키에 대한 서명은 신뢰성을 확보하기 위해 서명하는 상대방과 직접 만나서 이루어지지만, 서명 교환을 효율적으로 하기 위해 키 서명 파티(Key signing party)가 개최될 수 있다. 이를 통해 개별적으로 만나서 하는 경우에 비해 한 번에 여러 사람과 서명을 교환할 수 있다. 많은 키 서명 파티에서는 Zimmermann–Sassaman 키 서명 프로토콜이 사용된다.[84]
주의할 점은 공개키에 서명할 때 본인 확인을 철저히 하는 것이다. 인터넷에 배포된 공개키에 대한 무분별한 서명이나 본인 확인 없이 서명을 한 경우, 키 소유자를 특정할 수 없어 웹 오브 트러스트(Web of Trust) 자체의 신뢰성이 크게 저하된다.
또한, 서명되지 않은 공개키를 사용한 소프트웨어 서명은 서명의 의미가 없다는 점에도 주의해야 한다. 데비안(Debian)이나 그 파생 OS 등 일부 리눅스 배포판에서는 배포되는 모든 패키지에 대해 개발자가 GnuPG 서명을 함으로써 패키지의 변조를 방지하고 있다. 따라서 데비안 개발자에게는 Web of Trust 참여가 의무화되어 있다. 리눅스 커널 개발에서도 Web of Trust 참여가 요구되고 있다. 한편, 개발자에 국한되지 않고 일반 사용자도 Web of Trust에 참여함으로써 자신이 사용하고 있는 소프트웨어의 안전성을 검증할 수 있다. 깃(Git)이나 바자르(Bazaar) 등 일부 버전 관리 시스템에는 리비전에 대해 GnuPG 서명을 할 수 있는 시스템이 갖춰져 있다.
인증기관 상호 간의 신뢰 관계 모델을 신뢰 모델이라고 한다.[44] 다양한 기관이 다양한 신뢰 모델을 기반으로 인증기관을 운영하지만, 대표적인 신뢰 모델로는 단일 모델, 계층형 모델, 웹 모델, 메시 모델, 브리지 CA 모델 등이 있다.
- 단일 모델은 하나의 인증기관이 모든 사용자에게 인증서를 발급하는 모델이며,[44] 기업 내 인증기관 등 사용자 수가 소규모인 경우에 사용된다.
- 계층형 모델은 여러 인증기관이 트리형 계층 구조를 이루는 모델이며,[44] 웹 모델은 웹 브라우저 등의 클라이언트 애플리케이션에 미리 인증기관 목록을 탑재하는 모델이다.[44]
- 메시 모델은 계층 구조를 갖지 않는 인증기관들이 상호 인증하는 모델이며,[44] 서로 다른 운영 정책을 가진 "CA 도메인" 간을 연결할 때 사용된다.[46]
- 브리지 CA 모델은 인증기관들이 브리지 CA라는 인증기관을 통해 연결되는 모델이다.[44] 메시 모델과 마찬가지로 서로 다른 CA 도메인을 연결할 때 사용하지만, 각 인증기관이 상호 인증하는 메시 모델과 달리, 각 인증기관은 하나의 브리지 CA와만 상호 인증한다.
4. 3. 단순 공개 키 기반 구조 (SPKI)
단순 공개키 기반 구조는 X.509 및 PGP의 신뢰 웹의 복잡성을 극복하기 위한 대안으로, 세 가지 독립적인 노력에서 비롯되었다.[22] SPKI는 사용자를 사람과 연결하지 않는데, '키'가 사람보다 신뢰의 대상이기 때문이다.[22] SPKI는 검증자가 발급자이므로 신뢰 개념을 사용하지 않으며, 이를 "권한 부여 루프"라고 부른다.[22] 권한 부여는 SPKI 설계에 필수적이다.[22]이러한 유형의 PKI는 인증서 권한 부여, 인증서 정보 등에 대해 제3자에 의존하지 않는 PKI 통합을 만드는 데 특히 유용하다. 좋은 예로 사무실의 에어 갭 네트워크가 있다.
4. 4. 분산 PKI (DPKI)
분산 식별자(DID)는 계층적 PKI의 표준인 중앙 집중식 등록 기관 및 키 관리를 위한 중앙 집중식 인증 기관에 대한 의존성을 제거한다.[23][24] DID 등록 기관이 분산 원장인 경우 각 엔티티는 자체 루트 권한으로 작용할 수 있다. 이 아키텍처를 분산 PKI(DPKI)라고 한다.[23][24]5. 역사
1970년대 초, 영국 정보기관 GCHQ에서 제임스 엘리스, 클리포드 콕스 등이 암호화 알고리즘과 키 분배와 관련된 중요한 발견을 하면서 공개 키 기반 구조(PKI)의 발전이 시작되었다.[25] GCHQ의 개발 내용은 기밀이기 때문에 1990년대 중반까지 비밀로 유지되었고 공개적으로 인정받지 못했다.
1976년 휘트필드 디피와 마틴 헬먼이 안전한 키 교환 방식을 발표하고,[26] 1978년 론 리베스트, 아디 샤미르, 레너드 애들먼이 비대칭 키 알고리즘을 공개하면서 안전한 통신에 큰 변화가 일어났다. 고속 디지털 전자 통신(인터넷 및 그 이전 기술)의 발전과 함께 사용자들이 서로 안전하게 통신하고, 실제로 누구와 상호 작용하고 있는지 확인할 수 있는 방법에 대한 필요성이 분명해졌다.
새로운 암호화 원시 함수들을 효과적으로 사용할 수 있는 다양한 암호화 프로토콜이 발명되고 분석되었다. 월드 와이드 웹의 발명과 빠른 확산으로 인해 인증 및 안전한 통신의 필요성은 더욱 절실해졌다. 타헤르 엘가말과 넷스케이프 커뮤니케이션즈는 SSL 프로토콜('https' in Web URLs)을 개발했는데, 여기에는 키 설정, 서버 인증(v3 이전에는 단방향만 가능) 등이 포함되었다.[26] 따라서 안전한 통신을 원하는 웹 사용자/사이트를 위한 PKI 구조가 만들어졌다.
벤더와 기업가들은 큰 시장의 가능성을 보고 회사를 설립하거나 기존 회사에서 새로운 프로젝트를 시작하고 법적 인정과 책임으로부터의 보호를 위해 노력하기 시작했다. 미국 변호사 협회 기술 프로젝트는 PKI 운영의 예상되는 법적 측면에 대한 광범위한 분석을 발표했고 (ABA 디지털 서명 가이드라인 참조), 그 직후 미국 여러 주 (유타주가 1995년 최초)와 전 세계의 다른 관할 구역에서 법률을 제정하고 규정을 채택하기 시작했다. 소비자 단체는 개인 정보 보호, 접근 및 책임 고려 사항에 대한 질문을 제기했는데, 이는 일부 관할 구역에서 다른 관할 구역보다 더 많이 고려되었다.[27]
제정된 법률과 규정은 달랐으며, PKI 체계를 성공적인 상업 운영으로 전환하는 데 기술적 및 운영적 문제가 있었고, 진행 상황은 개척자들이 상상했던 것보다 훨씬 느렸다. 21세기 초반까지 기본적인 암호화 기술은 올바르게 배포하기가 쉽지 않다는 것이 분명해졌다. 운영 절차 (수동 또는 자동)는 올바르게 설계하기가 쉽지 않았고 (설계하더라도 완벽하게 실행하기가 어려웠으며, 이는 기술이 요구하는 것이었다). 기존 표준은 불충분했다.
PKI 벤더들은 시장을 찾았지만, 1990년대 중반에 예상했던 시장과는 다르며, 예상보다 훨씬 느리고 다소 다른 방식으로 성장했다.[28] PKI는 해결해야 할 것으로 예상되었던 일부 문제를 해결하지 못했고, 여러 주요 벤더가 사업을 접거나 다른 업체에 인수되었다. PKI는 정부 구현에서 가장 성공적이었으며, 현재까지 가장 큰 PKI 구현은 국방정보시스템기관(DISA)의 공용 접근 카드 프로그램을 위한 PKI 인프라이다.
6. 활용
공개 키 기반 구조(PKI)는 다양한 유형과 공급업체에서 제공되며, 다음과 같은 여러 용도로 사용된다.
- OpenPGP영어 또는 S/MIME을 사용한 이메일 메시지의 암호화 및/또는 발신자 인증[29]
- 문서가 XML로 인코딩된 경우 XML 서명 또는 XML 암호화 표준을 이용한 문서의 암호화 및/또는 인증[29]
- 스마트 카드 로그온, SSL/TLS를 사용한 클라이언트 인증과 같은 애플리케이션에 대한 사용자 인증. Enigform 및 mod_openpgp 프로젝트에서는 디지털 서명된 HTTP 인증에 대한 실험적 사용이 있다.[29]
- 인터넷 키 교환(IKE) 및 SSL/TLS와 같은 보안 통신 프로토콜의 부트스트래핑. 이 두 가지 모두에서 안전한 채널("보안 연관")의 초기 설정에는 비대칭 키(공개 키) 방법이 사용되는 반면, 실제 통신에는 더 빠른 대칭 키(비밀 키) 방법이 사용된다.[29]
- 모바일 장치를 사용하여 생성되고 위치에 독립적인 통신 환경에서 서명 또는 인증 서비스에 의존하는 전자 서명인 모바일 서명[29]
- 사물 인터넷은 상호 신뢰할 수 있는 장치 간의 안전한 통신을 필요로 한다. PKI를 통해 장치는 X.509 인증서를 획득하고 갱신할 수 있으며, 이는 장치 간의 신뢰를 구축하고 TLS를 사용하여 통신을 암호화하는 데 사용된다.[29]
- 문서가 전자 우편이라면 OpenPGP 및 S/MIME 등을 이용한다.[29]
- 사용자 인증에는 스마트 카드 로그온, TLS에 의한 클라이언트 인증 등이 있다.[29]
- 안전한 통신 프로토콜의 초기 설정에는 인터넷 키 교환(IKE) 및 TLS 등이 있다. IKE, TLS 모두 초기 설정 시에는 공개 키 암호를 사용하지만, 실제 통신은 공개 키 암호보다 속도가 빠른 대칭 키 암호를 사용한다.[29]
7. 오픈 소스 구현
(OpenSSL)은 PKI를 위한 가장 간단한 형태의 CA 및 도구이다. C로 개발된 툴킷으로, 주요 리눅스 배포판에 모두 포함되어 있으며, 자신만의 (단순한) CA를 구축하고 애플리케이션에 PKI를 활성화하는 데 모두 사용할 수 있다. (아파치 라이선스)[30][31][32][33][34]
EJBCA는 자바로 개발된 완벽한 기능을 갖춘 엔터프라이즈급 CA 구현이다. 내부용으로 CA를 설정하거나 서비스로 사용하는 데 사용할 수 있다. (LGPL 라이선스)
XiPKI는 CA 및 OCSP 응답기이다. SHA-3 지원과 함께 자바로 구현되었다. (아파치 라이선스)
XCA는 그래픽 인터페이스와 데이터베이스이다. XCA는 기본 PKI 작업에 OpenSSL을 사용한다.
DogTag는 페도라 프로젝트의 일부로 개발 및 유지 관리되는 완벽한 기능을 갖춘 CA이다.
CFSSL은 클라우드플레어가 TLS 인증서 서명, 검증 및 번들링을 위해 개발한 오픈 소스 툴킷이다. (BSD 2절 라이선스)
Vault는 해시코프가 개발한 비밀(TLS 인증서 포함)을 안전하게 관리하기 위한 도구이다. (모질라 공용 라이선스 2.0)
Boulder는 ACME 기반의 CA로, Go로 작성되었다. Boulder는 렛츠 인크립트를 실행하는 소프트웨어이다.
레드햇 Certificate System (Red Hat Certificate System), 컴퓨터 어소시에이츠(Computer Associates) eTrust PKI, 엔트러스트(Entrust), 마이크로소프트(Microsoft), US Government External Certificate Authority (ECA), Nexus, 오픈CA(OpenCA)(서버 소프트웨어를 포함한 공개적으로 이용 가능한 PKI를 목표로 하는 오픈소스 운동), RSA 시큐리티(RSA Security), phpki, GenCerti, ejbca, newpki, Papyrus CA Software, pyCA, IDX-PKI, EuropePKI (운영 중단), TinyCA, ElyCA, SimpleCA, SeguriData등이 있다.
8. 비판
일부에서는 웹사이트 보안을 위한 SSL/TLS 인증서 구매와 코드 서명을 통한 소프트웨어 보안이 중소기업에게는 비용이 많이 드는 사업이라고 주장한다.[35] 그러나 렛츠 인크립트와 같은 무료 대안의 등장으로 이러한 상황은 변화되었다. HTTP 프로토콜의 최신 버전인 HTTP/2는 이론적으로 비보안 연결을 허용하지만, 주요 브라우저 회사들은 PKI로 보호되는 TLS 연결을 통해서만 이 프로토콜을 지원할 것이라고 분명히 밝혔다.[36] 크롬, 파이어폭스, 오페라, 엣지를 포함한 HTTP/2의 웹 브라우저 구현은 TLS 프로토콜의 ALPN 확장을 사용하여 TLS를 통해서만 HTTP/2를 지원한다. 즉, HTTP/2의 속도 향상 효과를 얻으려면 웹사이트 소유자는 기업이 관리하는 SSL/TLS 인증서를 구매해야만 한다.
현재 대부분의 웹 브라우저는 인증 기관이 발급하고 서명한 사전 설치된 중간 인증서가 함께 제공되며, 이는 소위 루트 인증서에 의해 인증된 공개 키를 통해 이루어진다. 이는 브라우저가 다수의 서로 다른 인증서 제공업체를 관리해야 함을 의미하며, 키 손상 위험이 증가한다.[37]
키가 손상된 것으로 알려지면 인증서를 취소하여 해결할 수 있지만, 이러한 손상은 쉽게 감지되지 않으며 심각한 보안 위반이 될 수 있다. 브라우저는 손상된 루트 인증 기관이 발급한 중간 인증서를 취소하기 위해 보안 패치를 배포해야 한다.[38]
9. 한국의 PKI
한국은 PKI를 적극적으로 활용하고 있는 국가 중 하나이다. 특히, 정부 주도의 강력한 PKI 정책은 한국의 전자정부 및 디지털 경제 발전에 큰 영향을 미쳤다.
일본의 경우, 정부 인증 기반 (GPKI)은 일본 정부가 운영하는 PKI이다. 전 부처 공통의 '''정부 공용 인증기관'''(관직인증기관), 정부인증기반 외부의 인증기관과 상호 인증하기 위한 '''브리지 인증기관''', 그리고 국민과 기업에 배포하는 문서 및 프로그램에 첨부하는 서명에 대한 인증서를 발급하는 '''응용 프로그램 인증기관'''으로 구성된다.[63][64][65] 원래 각 부처가 자체적으로 사용하는 인증기관(부성인증기관)을 설치하고, 총무성이 설치한 브리지 인증기관을 통해 상호 인증하는 구조였으나, 2008년 이후 부성인증기관은 순차적으로 폐지되었다.[63] 정부인증기반에서는 행정기관의 공문서에 서명할 때 사용되는 전자서명 인증서인 '''관직증명서'''를 발급하며, 이 외에도 부처 등이 운영하는 정보 시스템의 인증 등에 사용하는 이용자 증명서 및 암호화 통신용 등 증명서를 발급한다.[67][68]
일본의 지방자치단체는 지방공공단체정보시스템기구가 운영하는 '''지방공공단체 조직인증기반(LGPKI)'''를 이용한다.[69] LGPKI 인증기관에는 지방자치단체의 장이나 관리직에 직책증명서를 발급하는 조직인증기관, 전자행정 서비스의 웹 서버 인증서 등을 발급하는 응용 프로그램 인증기관, 그리고 브리지 인증기관이 있다.
일본의 공적 개인 인증 서비스(JPKI)는 도도부현 단위 인증기관이 각 주민에게 주민 공개키에 대한 증명서를 발급하는 서비스이다.[70] 이 공개키와 증명서를 사용하여 각종 행정 서비스를 받을 수 있다. 2016년 1월부터 민간 이용이 개방되어 민간 서비스 이용 시에도 공적 개인 인증 서비스를 이용할 수 있게 되었다.[71]
하지만 이러한 일본의 PKI 정책은 한국의 PKI 정책과는 상당한 차이를 보인다. 한국은 중앙집중형 PKI 모델을 채택하여 효율성과 보안성을 높이고 있으며, 특히 전자서명법에 기반한 강력한 법적 기반을 갖추고 있다. 반면, 일본의 PKI는 상대적으로 분산화되어 있고, 법적 기반도 한국만큼 강력하지 않다는 평가를 받는다. 특히, 과거 일본의 전자정부 정책 실패 사례는 한국의 PKI 정책 성공과 대비되어 더욱 부각된다.
9. 1. 정부 인증 기반 (GPKI)
'''정부인증기반'''(정부 공개 키 기반 구조/Government Public Key Infrastructure영어, GPKI)은 일본 정부가 운영하는 PKI이다.[62] 전 부처 공통의 '''정부 공용 인증기관'''(관직인증기관), 정부인증기반 외부의 인증기관과 상호 인증하기 위한 '''브리지 인증기관''', 그리고 국민과 기업에 배포하는 문서 및 프로그램에 첨부하는 서명에 대한 인증서를 발급하는 '''응용 프로그램 인증기관'''으로 구성된다.[63][64][65]원래는 각 부처가 자체적으로 사용하는 인증기관(부성인증기관)을 설치하고, 총무성이 설치한 브리지 인증기관을 통해 상호 인증하는 구조였으나,[66] 2008년 이후 부성인증기관은 순차적으로 폐지되었다.[63]
정부인증기반에서는 행정기관의 공문서에 서명할 때 사용되는 전자서명 인증서인 '''관직증명서'''를 발급한다.[67] 이 외에도 부처 등이 운영하는 정보 시스템의 인증 등에 사용하는 이용자 증명서 및 암호화 통신용 등 증명서를 발급한다.[68]
한편, 일본의 지방자치단체는 지방공공단체정보시스템기구가 운영하는 '''지방공공단체 조직인증기반'''(LGPKI, Local Government Public Key Infrastructure)을 이용한다.[69]
9. 2. 지방 공공 단체 조직 인증 기반 (LGPKI)
일본의 지방자치단체는 지방공공단체정보시스템기구가 운영하는 지방 공공 단체 조직 인증 기반(LGPKI, Local Government Public Key Infrastructure)을 이용한다.[69] LGPKI 인증기관에는 지방자치단체의 장이나 관리직에 직책증명서를 발급하는 조직인증기관, 전자행정 서비스의 웹 서버 인증서 등을 발급하는 응용 프로그램 인증기관, 그리고 브리지 인증기관이 있다.9. 3. 공적 개인 인증 서비스 (JPKI)
공적 개인 인증 서비스(JPKI, Japanese Public Key Infrastructure)는 도도부현 단위 인증기관이 각 주민에게 주민 공개키에 대한 증명서를 발급하는 서비스이다.[70] 이 공개키와 증명서를 사용하여 각종 행정 서비스를 받을 수 있다. 2016년 1월부터 민간 이용이 개방되어 민간 서비스 이용 시에도 공적 개인 인증 서비스를 이용할 수 있게 되었다.[71]10. 관련 기술
10. 1. 시간 인증 기관과 타임스탬프
전자적 '''타임스탬프'''란 신뢰할 수 있는 제3자 기관( '''시간 인증 기관'''(Time Stamping Authority, TSA)[72])이 전자 문서에 부여하는 시간 증명서( '''타임스탬프 토큰'''[73][74](Time-Stamp Token, TST))를 발행하는 기술이다. 타임스탬프 토큰의 생성 방법에는 여러 가지가 있지만, PKI를 이용하는 방법도 있다. 시간 인증 기관이 증명서에 기재하는 시간 정보는 원자 시계 등 정확한 시간 측정기를 관리하는 '''시간 배포 기관'''(Time Assessment Authority, TAA[75])에서 배포받는다.타임스탬프에는 다음과 같은 종류가 있다.
- PKI 기반: PKI 기반 공개 키 증명서가 포함된 전자 서명을 사용한다.
- 링크 토큰 방식[73]: 해시 체인 기술을 이용한 방식. 시간 인증 기관이 링크 토큰이라고 불리는 해시 값 하나를 관리한다. 불특정 다수의 이용자로부터 문서가 전달될 때마다, 해당 문서와 링크 토큰의 해시 값을 계산하고, 그 해시 값을 새로운 링크 토큰으로 한다.
- MAC 기반
- 아카이빙 방식[73]: 시간 인증 기관이 문서의 해시 값을 모두 보관하는 방식
- 일시적 키 방식: 짧은 시간 동안만 유효한 서명 키를 사용하는 방식
방식 | RFC 3161 | X9.95 | ISO/IEC 18014 |
---|---|---|---|
PKI | O | O | O |
링크 토큰 | O | O | |
MAC | O | ||
아카이빙 | O | ||
일시적 키 | O | ||
서명이 포함된 링크 토큰 | O |
TAA에 관한 표준은 JIS X5094:2011로 표준화되었으며, 이는 후에 ISO/IEC 18014-4로 국제 표준화되었다.[73]
10. 2. 고급 전자 서명과 장기 서명
EU 규칙 eIDAS에서 정의된 고급 전자 서명(Advanced Electronic Signature, AdES)은 전자 서명 중 자연인 또는 그 대리인과의 대응 관계를 확인할 수 있는 것을 가리킨다.[77] 안전한 서명 장치로 생성되고 '''적격 증명서'''(qualified certificate)가 부여된 고급 전자 서명은 '''적격 서명'''(Qualified Signature)이라고 한다.[77]유럽전기통신표준화기구(ETSI)[80]는 고급 전자 서명 표준화를 위해 CMS(암호 메시지 구문)에 따른 '''CAdES'''(ETSI TS 101 733, RFC5126, ISO14533-1[78]), XML에 따른 '''XAdES'''(ETSI TS 101 903, ISO14533-2[78]), PDF에 따른 '''PAdES'''(ETSI TS 102 778, ISO 32000-1[79])을 제정했다. 이 표준들은 ISO와 RFC에도 채택되었다.
고급 전자 서명은 제공되는 보호 수준이 다른 6가지 형식을 규정하며, 키의 위험화 등에 대응하는 장기 서명의 표준도 포함한다.
- '''XAdES''': 고급 서명(advanced signature)에 관한 유럽 지침을 단순히 만족시키기 위한 기본 형식이다.
- '''XAdES-T'''(timestamp): 서명 행위의 부인에 대한 보호를 위해 타임스탬프를 추가한다.
- '''XAdES-C'''(complete): 오프라인 검증 및 미래의 검증이 가능하도록 (증명서 및 증명서 폐기 목록 등의) 검증 데이터에 대한 참조 정보를 서명 문서에 추가한다. (하지만 검증 정보는 저장하지 않는다.)
- '''XAdES-X'''(extended): 미래에 체인 내 증명서가 위험해질 가능성으로부터 보호하기 위해 XAdES-C에서 도입된 참조 정보에 타임스탬프를 추가한다.
- '''XAdES-X-L'''(extended long-term): 증명서 및 증명서 폐기 목록의 배포자가 이용할 수 없게 되더라도 미래에 검증할 수 있도록 서명 문서에 증명서 및 폐기 목록 자체를 추가한다.
- '''XAdES-A'''(archival): 장기간의 보관 기간 동안 서명이 취약해짐으로 인한 위험화를 피하기 위해 보관된 문서에 정기적으로(예: 매년) 타임스탬프를 추가한다.
XAdES를 예시로 들었지만, CAdES 및 PAdES도 위와 같은 형식을 가진다.
10. 3. 권한 관리 기반 (PMI)
'''권한 관리 기반'''(Privilege Management Infrastructure영어, PMI)는 PKI와 유사한 방법으로 개인이 가지고 있는 권한이나 속성을 증명하기 위한 기반 기술이다.[81][82] 이 기반에서 권한이나 속성을 증명하는 증명서를 '''속성 증명서'''(Authorization certificate영어, attribute certificate, or authorization certificate, '''AC''')이라고 하며, PKI와 마찬가지로 X.509 형식을 따른다. 또한 PKI의 인증 기관(CA), 루트 인증 기관에 해당하는 기관을 각각 '''권한 기관'''(Attribute Authorities, AA), '''루트 권한 기관'''(Sources of Authority, SOA)이라고 한다.참조
[1]
논문
Dynamic Public Key Certificates with Forward Secrecy
2021-08-19
[2]
웹사이트
Public Key Infrastructure (PKI)
https://www.enisa.eu[...]
European Union
2024-05-14
[3]
웹사이트
What is PKI? And how it secures just about everything online
https://www.csoonlin[...]
2021-08-26
[4]
웹사이트
Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework
https://www.ietf.org[...]
2020-08-26
[5]
웹사이트
Public Key Infrastructure
https://msdn.microso[...]
2015-03-26
[6]
웹사이트
Using Client-Certificate based authentication with NGINX on Ubuntu - SSLTrust
https://www.ssltrust[...]
2019-06-13
[7]
서적
Understanding PKI: concepts, standards, and deployment considerations
https://books.google[...]
Addison-Wesley Professional
[8]
서적
Managing information systems security and privacy
https://books.google[...]
Birkhauser
[9]
서적
Public key infrastructure: building trusted applications and Web services
https://books.google[...]
CRC Press
[10]
서적
Network Security with OpenSSL
O'Reilly Media
[11]
뉴스
The ABCs of PKI: Decrypting the complex task of setting up a public key infrastructure
http://www.networkwo[...]
2001-01-17
[12]
서적
Digital Enterprise and Information Systems: International Conference, Deis,
[13]
서적
Mike Meyers CompTIA Security+ Certification Passport
[14]
웹사이트
Trusted Third Party Service
http://www.businessd[...]
2016-03-04
[15]
웹사이트
Counting SSL certificates
http://news.netcraft[...]
2015-05-13
[16]
웹사이트
CA:Symantec Issues
https://wiki.mozilla[...]
2020-01-10
[17]
웹사이트
Chrome's Plan to Distrust Symantec Certificates
https://security.goo[...]
2020-01-10
[18]
웹사이트
JDK-8215012 : Release Note: Distrust TLS Server Certificates Anchored by Symantec Root CAs
https://bugs.java.co[...]
2020-01-10
[19]
웹사이트
Information about distrusting Symantec certificate authorities
https://support.appl[...]
2023-09-05
[20]
웹사이트
Single Sign-On Technology for SAP Enterprises: What does SAP have to say?
http://www.secude.co[...]
2010-05-25
[21]
웹사이트
Overview of Certification Systems: x.509, CA, PGP and SKIP, in The Black Hat Briefings '99
http://www.securityt[...]
[22]
웹사이트
Simple Public Key Infrastructure
https://www.limited-[...]
[23]
웹사이트
Decentralized Identifiers (DIDs)
https://www.w3.org/T[...]
2019-12-09
[24]
웹사이트
Decentralized Public Key Infrastructure
https://www.weboftru[...]
2015-12-23
[25]
웹사이트
The Possibility of Secure Non-Secret Digital Encryption
http://cryptocellar.[...]
1970-01-01
[26]
웹사이트
TLS Security 2: A Brief History of SSL/TLS
https://www.acunetix[...]
2019-03-31
[27]
간행물
PKI Assessment Guidelines
https://theworld.com[...]
2001
[28]
간행물
The importance of PKI today
http://www.china-cic[...]
2005-12-01
[29]
간행물
D3.2: A study on PKI and biometrics
http://www.fidis.net[...]
2005-07-01
[30]
웹사이트
xipki/xipki · GitHub
https://github.com/x[...]
Github.com
[31]
웹사이트
X - Certificate and Key management
https://hohnstaedt.d[...]
[32]
웹사이트
Introducing CFSSL - Cloudflare's PKI toolkit
https://blog.cloudfl[...]
CloudFlare
2014-07-10
[33]
웹사이트
cloudflare/cfssl · GitHub
https://github.com/c[...]
Github.com
[34]
웹사이트
hashicorp/vault · GitHub
https://github.com/h[...]
Github.com
[35]
웹사이트
Should We Abandon Digital Certificates, Or Learn to Use Them Effectively?
https://www.forbes.c[...]
[36]
웹사이트
HTTP/2 Frequently Asked Questions
https://http2.github[...]
[37]
웹사이트
Root Certificate vs Intermediate Certificates
https://aboutssl.org[...]
2022-05-02
[38]
웹사이트
Fraudulent Digital Certificates could allow spoofing
http://support.micro[...]
Microsoft
2011-03-23
[39]
웹사이트
IPA013
https://www.ipa.go.j[...]
[40]
웹사이트
公開鍵認証基盤(PKI)の仕組み
https://www.jpki.go.[...]
2016-08-04
[41]
웹사이트
用語集「公開鍵認証基盤」
http://www.jipdec.or[...]
2016-08-04
[42]
웹사이트
公開鍵認証基盤(PKI)の仕組み
https://www.mhlw.go.[...]
2016-08-04
[43]
웹사이트
電子署名について
http://esac.jipdec.o[...]
2016-08-04
[44]
웹사이트
IPA51
https://www.ipa.go.j[...]
2016-08-03
[45]
웹사이트
IPA034
https://www.ipa.go.j[...]
2016-08-03
[46]
웹사이트
IPA055
https://www.ipa.go.j[...]
[47]
웹사이트
IPA056
https://www.ipa.go.j[...]
[48]
웹사이트
ルート認証局
http://e-words.jp/w/[...]
2016-08-03
[49]
웹사이트
ルート認証局
http://www.jipdec.or[...]
2016-08-03
[50]
웹사이트
IPA033, IPA092
https://www.ipa.go.j[...]
2016-08-03
[51]
웹사이트
IPA033
https://www.ipa.go.j[...]
2016-08-03
[52]
웹사이트
OSS モデルカリキュラムの学習ガイダンス6-1-応。暗号化に関する知識
http://www.ipa.go.jp[...]
2016-08-04
[53]
웹사이트
IA(Issuing Authority)
https://atmarkit.itm[...]
2016-08-04
[54]
웹사이트
IPA032
https://www.ipa.go.j[...]
2016-08-03
[55]
웹사이트
IPA62
https://www.ipa.go.j[...]
2016-08-05
[56]
웹사이트
IPA63
https://www.ipa.go.j[...]
2016-08-05
[57]
웹사이트
IPA041
https://www.ipa.go.j[...]
[58]
웹사이트
検証局
http://e-words.jp/w/[...]
2016-08-05
[59]
웹사이트
VA
http://www.secomtrus[...]
2016-08-05
[60]
웹사이트
IPA042
https://www.ipa.go.j[...]
[61]
웹사이트
IPA043
https://www.ipa.go.j[...]
[62]
웹사이트
GPKI
http://e-words.jp/w/[...]
2016-08-05
[63]
웹사이트
政府認証基盤(GPKI)について
http://www.gpki.go.j[...]
2016-08-05
[64]
웹사이트
政府認証基盤システム調達計画書(区分:最適化対象業務・システム
https://www.soumu.go[...]
2016-08-05
[65]
문서
政府認証基盤(GPKI)アプリケーション認証局 CP/CPS
[66]
웹사이트
IPA081
https://www.ipa.go.j[...]
[67]
웹사이트
官職証明書
https://www.jpki.go.[...]
2016-08-05
[68]
웹사이트
政府認証基盤(GPKI)官職認証局 CP/CPS
http://www.gpki.go.j[...]
2016-08-05
[69]
웹사이트
地方公共団体組織認証基盤
http://www.lgpki.jp/
2016-08-05
[70]
웹사이트
公的個人認証サービスの利活用について
https://www.soumu.go[...]
2016-08-05
[71]
웹사이트
マイナンバーカード(電子証明書)を活用する公的個人認証サービスの利用を行う民間事業者として、初の大臣認定を実施
https://www.soumu.go[...]
総務省
2016-08-05
[72]
웹사이트
タイムスタンプの仕組み
http://www.dekyo.or.[...]
一般財団法人日本データ通信協会タイムビジネス認定センター
2016-08-25
[73]
웹사이트
タイムスタンプの方式
http://www.dekyo.or.[...]
一般財団法人日本データ通信協会タイムビジネス認定センター
2016-08-25
[74]
간행물
情報セキュリティ対策研究開発評価等事業タイムスタンプ技術に関する調査報告書
https://www.ipa.go.j[...]
IPA
2003-00-00 #년도만 제공됨
[75]
웹사이트
タイムスタンプの時刻
http://www.dekyo.or.[...]
一般財団法人日本データ通信協会タイムビジネス認定センター
2016-08-25
[76]
논문
The Security Evaluation of Time Stamping Schemes: The Present Situation and Studies
http://citeseerx.ist[...]
[77]
웹사이트
長期署名フォーマットの標準化と日欧相互運用実験
http://www.jnsa.org/[...]
2016-08-26
[78]
웹사이트
電子契約導入のための20のヒントその20
http://www.nsxpres.c[...]
2016-08-26
[79]
웹사이트
ISO 32000-1:2008 Document management -- Portable document format -- Part 1: PDF 1.7
http://www.iso.org/i[...]
International Organization for Standardization ISO
2016-03-22
[80]
웹사이트
Regulation (EU) No 910/2014 of the European Parliament and of the Council of 23 July 2014 on electronic identification and trust services for electronic transactions in the internal market and repealing Directive 1999/93/EC
http://eur-lex.europ[...]
EUR-Lex
2016-05-12
[81]
웹사이트
IPA091
https://www.ipa.go.j[...]
2016-08-29
[82]
간행물
「電子申請業務におけるX.509属性証明書を用いた資格確認技術の開発」平成13年度年次総括報告書
https://www.ipa.go.j[...]
2016-08-29
[83]
웹사이트
analysis of the strong set in the PGP web of trust
http://pgp.cs.uu.nl/[...]
[84]
웹사이트
Keysigning Party Methods - The 'Sassaman-Efficient' Method
http://keysigning.or[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com